package com.reder.practice.common.util;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 分页工具类
 *
 * @author Fish
 * ------ 1149062639@qq.com
 * created by 2019/03/06 21:41:50
 */
public final class PageUtil {

    // 一页显示多少条数据
    public static final int DEFAULT_SIZE_OF_ONE_PAGE = 12;


    // 分页导航栏上显示多少页候选页码
    public static final int SHOW_HOW_MANY_PAGES_IN_NAVIGATION = 5;

    /**
     * pageHelper 每进行一次分页就得调用一次这个方法
     *
     * @param pn 到第几页
     */
    public static void toPage(Integer pn) {
        toPage(pn, DEFAULT_SIZE_OF_ONE_PAGE);
    }

    /**
     * pageHelper 每进行一次分页就得调用一次这个方法
     *
     * @param pn   到第几页
     * @param size 一次显示多少条数据
     */
    public static void toPage(Integer pn, Integer size) {
        PageHelper.startPage(pn, size);
    }

    /**
     * 返回 pageInfo 对象，包含分页的信息
     *
     * @param objects 要被分页的集合
     */
    public static <T> PageInfo<T> pageInfo(List<T> objects) {
        // 第一个参数为分页对象，第二个为每次显示的页数
        return new PageInfo<T>(objects, SHOW_HOW_MANY_PAGES_IN_NAVIGATION);
    }
}
